
/**
 * 开发标准要求传给后台的参数都必须是snake命名,而前端组件如antd的pagination中用的pageSize默认是大写.
 * 为了方便,写一个工具专门把前端的pageSize转成page_size给后台.并把后台的的page_size转成pageSize
 */
export function changePropertyName(obj, oldPropName, newPropName) {
    // console.log('obj:',obj,'oldPropName',oldPropName,'newPropName',newPropName);
    if(obj && obj.hasOwnProperty(oldPropName)) {
        const val = obj[oldPropName];
        delete obj[oldPropName];
        obj[newPropName] = val;
    }
    return obj;
}
/**
 * 批量修改对象的属性名.
 * @param {*} obj 
 * @param {*} oldPropNames 旧属性名数组.
 * @param {*} newPropNames 新属性名数组,与oldPropNames的元素一一对应.
 */
export function changePropertyNames(obj, oldPropNames, newPropNames) {
    if(obj) {
        if(Array.isArray(oldPropNames) && Array.isArray(newPropNames) && oldPropNames.length === newPropNames.length) {
            for(let i = 0;i < oldPropNames.length;i++) {
                changePropertyName(obj, oldPropNames[i], newPropNames[i]);
            }
        }
    }

    return obj;
}

/**
 * 检测对象的某个属性不是空对象.
 *   const obj1 = { pagination:null };
 *   const obj2 = { pagination:'' };
 *   const obj3 = { pagination:{} };
 *   const obj4 = { pagination:{ current:1,pageSize:10 } };
 * 
 *   console.log(notEmptyProp(obj1,'pagination')); //false
 *   console.log(notEmptyProp(obj2,'pagination')); //false
 *   console.log(notEmptyProp(obj3,'pagination')); //false
 *   console.log(notEmptyProp(obj4,'pagination')); //true
 */
export function notEmptyProp(obj,propName){
    if(obj && obj[propName] && Object.entries(obj[propName]).length>0){
        return true;
    }
    return false;
}
// const obj = { pageSize:10, pageNumber:1 };
// changePropertyNames(obj, ['pageSize', 'pageNumber'], ['page_size', 'page_number'] );
// console.log(obj);

// const obj1 = { pagination:null };
// const obj2 = { pagination:'' };
// const obj3 = { pagination:{} };
// const obj4 = { pagination:{ current:1,pageSize:10 } };
// console.log(notEmptyProp(obj1,'pagination')); //false
// console.log(notEmptyProp(obj2,'pagination')); //false
// console.log(notEmptyProp(obj3,'pagination')); //false
// console.log(notEmptyProp(obj4,'pagination')); //true


